// 测试 ctemplate

#include <iostream>
#include <string>
#include <ctemplate/template.h>

int main()
{
    std::string html = "./test.html";
    std::string val = "你好世界！";
    // 建立数据字典
    ctemplate::TemplateDictionary root("test");  // 相当于 unordered_map<> test;
    root.SetValue("key", val);  // 相当于往 unordered_map 里面添加元素：test[key] = val;

    // 获取被渲染的网页对象
    // 第一个参数，获取指定路径的html
    // DO_NOT_STRIP：保持html网页原貌
    ctemplate::Template* tpl = ctemplate::Template::GetTemplate(html, ctemplate::DO_NOT_STRIP);

    // 添加字典数据到网页中，开始渲染，返回新的网页结果到 out_html
    // 会将所有用双花括号包起来的 key 值都会被替换：{{key}};
    std::string out_html;
    tpl->Expand(&out_html, &root);

    // 输出被渲染的 html
    std::cout << out_html << std::endl;
    return 0;
}